557dd1f1c448627c420f73ad355a9a2adc2700f2,org.springframework.transaction/src/main/java/org/springframework/transaction/support/AbstractPlatformTransactionManager.java,AbstractPlatformTransactionManager,handleExistingTransaction,#TransactionDefinition#Object#boolean#,394
Before Change
// in case of a pre-existing JTA transaction.
doBegin(transaction, definition);
boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
return newTransactionStatus(definition, transaction, true, newSynchronization, debugEnabled, null);
}
}
After Change
// Usually only for JTA: Spring synchronization might get activated here
// in case of a pre-existing JTA transaction.
boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
DefaultTransactionStatus status = newTransactionStatus(
definition, transaction, true, newSynchronization, debugEnabled, null);
try {
doBegin(transaction, definition);
}
catch (RuntimeException beginEx) {
if (status != null && status.isNewSynchronization()) {
TransactionSynchronizationManager.clear();
}
throw beginEx;
}
catch (Error beginErr) {
if (status != null && status.isNewSynchronization()) {
TransactionSynchronizationManager.clear();
}
throw beginErr;
}
return status;
}
}